I. Field of the Invention
The present invention relates to data communications and more particularly to methods of resolving addressing differences between applications and networking protocols and for selecting from a choice of networking protocols when multiple protocols are available.
II. Prior Art
As communications networks have evolved, independent suppliers of computer hardware and software developed different, non-compatible formats and protocols for transporting data through the communications networks. Examples of well-known communications protocols include System Network Architecture (SNA), Digital Network Architecture (DECnet), Transmission Control Protocol/Internet Protocol (TCP/IP), NetBIOS and OSI.
As networks have grown, and particularly as local area networks have come into widespread use, many organizations have ended up with confederations of individual networks running different networking protocols. For example, a single organization may have dozens of networks running as many as four or five different networking protocols. This heterogeneity complicates the network communication as distributed programs are generally written for a particular application programming interface (API) which assumes a specific networking protocol, and can, therefore, only run on limited parts of the overall network.
If a mismatch exists between the transport protocols (the most basic end-to-end networking protocols for opening and closing connections, sending and receiving data on connections, and sending and receiving datagrams) assumed by the particular API for a company's application program and the transport protocols actually implemented in one or more of the networks on which the company would like to transport the application data, compensation between the API and the network may be required. This is described in greater detail in closely related issued U.S. Pat. No. 5,224,098.
In addition, there are addressing problems associated with the heterogeneous networks. A program today identifies itself and finds its partners using addresses associated with a particular networking protocol. (A networking protocol uses addresses to locate programs in the network via existing protocol-specific means, such as local directory searches or directory broadcasts and to route to those programs.) In order for the program to operate over multiple, different networking protocols, a mechanism is needed to bridge the gap between the specific address set used by the program and the address sets used by the networking protocols. In particular, program independence from specific network protocols requires a transport-independent mechanism for finding the source and destination application programs and the corresponding available transport protocols. In addition, a mechanism for selecting the best transport protocol to utilize, when multiple networking protocols are available, is required.
Since many programs already exist using existing address formats, it is not feasible to require all programs, including those in existence, to use a single standard address format. Likewise, it is not feasible to change all existing transport protocols to support the complete list of address formats used by application programs or to use a single standard format.
The work described here is different from that defined in the TCP/IP Requests for Comments (RFCs) 1001 and 1002 in that the RFCs solve the problem for a specific transport user and transport provider, but do not address the general mechanism needed to support many different types of users or providers. The work also differs from an application directory, such as OSI's X.500, in that its dynamic nature is more akin to a networking directory and it does not deal with name to address mapping with their associated complexities.
In addition, where a source application program is able to communicate with a destination partner program over one of multiple transport providers, the most efficient provider should be chosen. At present, no method of selecting the best transport provider based on services provided when more than one are available is known.